package com.ybq;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;

/**
 * springboot 整合 springsecurity 的测试 demo
 * 1. pom 引入关键 jar 包：
 * <dependencies>
 *         <dependency>
 *             <groupId>org.springframework.boot</groupId>
 *             <artifactId>spring-boot-starter-web</artifactId>
 *         </dependency>
 *         <dependency>
 *             <groupId>org.springframework.boot</groupId>
 *             <artifactId>spring-boot-starter-security</artifactId>
 *         </dependency>
 *     </dependencies>
 *
 * 2. 配置文件加入配置，默认是内存用户
 *  spring:
 *   security:
 *     user:
 *       name: user
 *       password: 123456
 *       roles: TEST
 *
 * 3. 编写简单的 controller 先测试下，跑起来访问 http://localhost:8080/
 *      会默认跳转到 http://localhost:8080/login
 *      这个是 security 默认接管了所有的访问，没登录授权的默认到 login 页面
 *
 * 4. 尝试使用配置的账号密码访问，可以进入了。
 *
 * 以上就是基本的使用方式，可以看到没有配置任何的 enablexxx 的，直接就生效了。
 *
 * 》》》》》 开始自定义配置，进行一些高级操作
 *
 * 5. 新建 SecurityConfig 继承 WebSecurityConfigurerAdapter 抽象类，
 * 实现 Spring Security 在 Web 场景下的自定义配置, 具体的配置说明参看配置类
 *
 * 6. 如何使用 Spring Security 的注解，实现权限控制。
 *    在配置文件中增加注解 @EnableGlobalMethodSecurity(prePostEnabled = true)
 *
 * @author ly
 * @email 664162337@qq.com
 * @date 2020/9/28 17:28
 */
@SpringBootApplication
public class SpringSecurityApp {
    
    public static void main(String[] args) {
        SpringApplication.run(SpringSecurityApp.class, args);
    }
}
